import request from '@/utils/request'

export const PROJECT_API = {
  /**
   * 获取任务列表
   * 0 未开始 1 运行中 2 运行队列中 3 周期任务队列中 4 采集完成
   */
  getProjectList(data) {
    return request({
      url: '/project/page',
      method: 'GET',
      params: data
    })
  },
  /**
   * 根据任务ID获取任务信息
   * @param {number } id
   */
  getProjectInfoById(id) {
    return request({
      url: `/project/${id}`,
      method: 'GET'
    })
  },
  /**
   * 创建任务
   * @param {object} data
   * 任务名	name	string		是
   * 任务网址	sourceNet	string		是
   * 网站名称	sourceName	string		是
   * 分组id	groupId	long（数字）		是
   */
  createProject(data) {
    return request({
      url: '/project/create',
      method: 'POST',
      data
    })
  },
  /**
   *修改任务
   * @param {object} data
   * 任务ID id  string  是
   * 任务名	name	string		否
   * 任务网址	sourceNet	string		否
   * 网站名称	sourceName	string		否
   * 分组id	groupId	long（数字）		否
   *
   */
  editProject(data) {
    return request({
      url: '/project/update',
      method: 'POST',
      data
    })
  },
  /**
   *删除任务
   * @param {string} projectId
   */
  deleteProject(projectId) {
    return request({
      url: '/project/delete',
      method: 'DELETE',
      params: { projectId }
    })
  },
  /**
   * 第三方网页登录操作
   * @param { string } projectId 任务id
   * @param { object } [login] 登录对象
   */
  loginThirdPart(projectId, data) {
    return request({
      url: '',
      method: 'POST',
      params: {
        projectId
      },
      data
    })
  },
  /**
   * 保存任务采集配置
   * @param { array } config
   * @param { string } projectId
   */
  saveTaskConfig(config, projectId) {
    return request({
      url: '/project/config',
      method: 'POST',
      data: config,
      params: {
        projectId
      }
    })
  },
  /**
   * 任务开始采集
   * @param { string } projectId 任务id
   * @param { object } [steps,ip] 步骤与代理ip
   */
  startProject(projectId, data) {
    return request({
      url: '/project/start',
      method: 'GET',
      params: {
        projectId
      },
      data
    })
  },
  /**
   * 获取任务下已采集数据
   * @param { string } projectId
   * @param { number } pageNo
   * @param { number } pageSize
   */
  getDataOfProject(info) {
    return request({
      url: '/project/data',
      method: 'GET',
      params: info
    })
  }
}
